import { useEffect } from 'react'
import Taro, { useDidShow, useDidHide } from '@tarojs/taro'
// 全局样式
import './app.scss'
import getSystemInfo from "./utils/getSystemInfo";

export const theme = `
  --px0d5: 0.5px;
  --px1: 1px;
  --px2: 2px;
  --px3: 3px;
  --px4: 4px;
  --px5: 5px;
  --px6: 6px;
  --px7: 7px;
  --px8: 8px;
  --px9: 9px;
  --px10: 10px;
  --px11: 11px;
  --px12: 12px;
  --px13: 13px;
  --px14: 14px;
  --px15: 15px;
  --px16: 16px;
  --px17: 17px;
  --px18: 18px;
  --px19: 19px;
  --px20: 20px;
  --px21: 21px;
  --px22: 22px;
  --px23: 23px;
  --px24: 24px;
  --px25: 25px;
  --px26: 26px;
  --px27: 27px;
  --px28: 28px;
  --px29: 29px;
  --px30: 30px;
  --px31: 31px;
  --px32: 32px;
  --px33: 33px;
  --px34: 34px;
  --px35: 35px;
  --px36: 36px;
  --px37: 37px;
  --px38: 38px;
  --px39: 39px;
  --px40: 40px;
  --px41: 40px;
  --px42: 40px;
  --px43: 40px;
  --px44: 40px;
  --px45: 40px;
  --px46: 40px;
  --px47: 40px;
  --px48: 40px;
  --px49: 40px;
  --px50: 50px;
  --px60: 60px;
  --px70: 70px;
  --px80: 80px;
  --px90: 90px;
  --px100: 100px;
  --px110: 110px;
  --px120: 120px;

  --font-size-title: var(--px14);
  --font-size-desc: var(--px13);
  --font-size-idal: var(--px12);

  --block-radius: var(--px6);
  --block-padding: var(--px12);
  --block-margin: var(--px12);
`
function App(props) {
  // 可以使用所有的 React Hooks
  useEffect(() => {
    if (process.env.TARO_ENV === 'weapp') {
      Taro.cloud.init({
        traceUser: true,
        env: 'develop-3gnhbrj323546fde'
      })
    }

    const updateManager = Taro.getUpdateManager()
    updateManager.onCheckForUpdate((res) => {
      if (res.hasUpdate) {
        // 有更新
      }
    })
    updateManager.onUpdateReady(() => {
      Taro.showModal({
        title: '更新提示',
        content: '新版本已经准备好，请确认重启应用',
        success: (res) => {
          if (res.confirm) {
            updateManager.applyUpdate()
          }
        }
      })
    })
    const info = getSystemInfo()

    if (info.platform === 'mac' || info.platform === 'windows') {
      // @ts-ignore
      window.eval = theme
    }
  }, [])

  // 对应 onShow
  useDidShow(() => {})

  // 对应 onHide
  useDidHide(() => {})

  return props.children
}

export default App
